<?php
class Application_Modules_Admin_Model_Os
{
	public  function select($where = null, $order = null, $limit = null)
	{
		$dao = new Application_Model_DbTable_Os();
		$select = $dao->select()->from($dao)->order($order)->limit($limit);
		if(!is_null($where)){
			$select->where($where);
		}
		return $dao->fetchAll($select)->toArray();
		
		
		/*$dao = new Application_Model_DbTable_Os();
		$select = $dao->select()
				  ->from(array('os'=>'os'),
						 array('id_os','data_os','status','id_motorista'))
				  ->join(array('v'=>'veiculo'),'os.id_veiculo = v.id_veiculo',
				  		 array('placa','modelo'))
				  ->join(array('m'=>'motorista'),'os.id_motorista = m.id_motorista',
				  		 array('nome'));
		return $select;*/
	}
	
	public function find($id)
	{
		$dao = new Application_Model_DbTable_Os();
		$arr = $dao->find($id)->toArray();
		
		return $arr[0];
	}
	
	public function insert(array $request)
	{
		//Chama as model e insere Mercadoria e Frete
		$dao_merc = new Application_Model_DbTable_Mercadoria();
		$dados_merc = array(
			         	'natureza' => $request['natureza_mer'],
			         	'quantidade' => $request['quantidade_mer'],
			         	'especie' => $request['especie_mer'],
			      		'peso' => $request['peso_mer'],
			      		'nfiscal' => $request['nfiscal_mer'],
			      		'valor' => $request['valor_mer']
		);
		$id_merc = $dao_merc->insert($dados_merc);
		
		$dao_frete = new Application_Model_DbTable_Frete();
		$dados_frete = array(
			         	'valor' => $request['valor_frete'],
			         	'pedagio' => $request['pedagio_frete'],
			         	'outros' => $request['outros_frete'],
			      		'seguro' => $request['seguro_frete'],
			      		'valor_total' => $request['valot_total_frete'],
			      		'icms' => $request['icms_frete'],
			      		'obs' => $request['obs_frete']
		);
		$id_frete = $dao_frete->insert($dados_frete);	
		
		
		$dao = new Application_Model_DbTable_Os();
		$dados = array(
	         	'data_os' => "date('d-m-Y h:i')",
	         	'id_cliente_r' => $request['id_cliente_r'],
				'id_cliente_d' => $request['id_cliente_d'],
				'id_cliente_c' => $request['id_cliente_c'],
	         	'id_frete' => $id_frete,
	      		'id_mercadoria' => $id_merc,
	      		'id_motorista' => $request['id_motorista'],
	      		'id_veiculo' => $request['id_veiculo'],
				'id_carreta' => $request['id_carreta'],
	      		'id_cargapos' => $request['id_cargapos'],
	      		'status' => $request['status']
		);
		return $dao->insert($dados);
	}
	 
	public function update(array $request)
	{
		$dao_merc = new Application_Model_DbTable_Mercadoria();
		$dados_merc = array(
			        	'natureza' => $request['natureza_mer'],
			         	'quantidade' => $request['quantidade_mer'],
			         	'especie' => $request['especie_mer'],
			      		'peso' => $request['peso_mer'],
			      		'nfiscal' => $request['nfiscal_mer'],
			      		'valor' => $request['valor_mer']
		);
		$where_merc = $dao_merc->getAdapter()->quoteInto("id_mercadoria = ?", $request['id_mercadoria']);
		$dao_merc->update($dados_merc, $where_merc);
		
		$dao_frete = new Application_Modules_Admin_Model_Frete();
		$dao_frete->update($request);
		
		$dao = new Application_Model_DbTable_Os();
		$dados = array(
	         	'id_cliente_r' => $request['id_cliente_r'],
				'id_cliente_d' => $request['id_cliente_d'],
				'id_cliente_c' => $request['id_cliente_c'],
	         	'id_frete' => $request['id_frete'],
	      		'id_mercadoria' => $request['id_mercadoria'],
	      		'id_motorista' => $request['id_motorista'],
	      		'id_veiculo' => $request['id_veiculo'],
				'id_carreta' => $request['id_carreta'],
	      		'id_cargapos' => $request['id_cargapos'],
	      		'status' => $request['status']
		);
		$where = $dao->getAdapter()->quoteInto("id_os = ?", $request['id_os']);
		$dao->update($dados, $where);
	}
	 
	public function delete($id)
	{
		$dao = new Application_Model_DbTable_Os();
		$where = $dao->getAdapter()->quoteInto("id_os = ?", $id);
		$dao->delete($where);
	}

}

